import { _decorator, Component, Node, Sprite, SpriteFrame } from 'cc';
import { PlayerSkillDt } from '../../../FrameWork3.8.6/FrameWork/Common/CommonInterface';
import { ResMgr } from '../../../FrameWork3.8.6/FrameWork/Res/ResMgr';
import { BundleConfig } from '../../../FrameWork3.8.6/FrameWork/NeedToChange/BundleConfig';
const { ccclass, property } = _decorator;

@ccclass('SkillBtn')
export class SkillBtn extends Component {
    //当前按钮的技能数据
    private _skillDt:PlayerSkillDt=null;
    //当前按钮的进度条
    private _bar:Node=null;
    //释放当前技能的CD
    private _cd:number=0;
    //技能能否使用
    private _isUse:boolean=false;
    //存储当前技能数据，更换照片，最后注册当前按钮的点击事件
    onInit(skillDt:PlayerSkillDt){
        //获取到当前进度条
        this._bar=this.node.getChildByName("Bar");
        //先存储数据
        this._skillDt=skillDt;
        this._cd=this._skillDt.cd;
        //更换照片
        this.node.getComponent(Sprite).spriteFrame=ResMgr.instance.getRes<SpriteFrame>(BundleConfig.Img.name,skillDt.iconName)
        //先注销当前按钮身上的事件，防止被干扰
        this.node.targetOff(this.node);
        this.node.on("click",()=>{
            if(this._isUse){
                this.useSkill();
                //重新设置为无法使用
                this._isUse=false;
                this._bar.getComponent(Sprite).fillRange=1;
            }
        },this)
        
    }


    //释放技能效果
    useSkill(){
        console.log("释放技能"+this._skillDt.name);
    }

    //在每一帧更新的方法
    onUpdate(dt:number){
        //如果能使用，则无需进行cd推进
        if(this._isUse){
           return; 
        }
        //1-0从没有到有
        this._bar.getComponent(Sprite).fillRange-=dt/this._cd;
        if(this._bar.getComponent(Sprite).fillRange<=0){
            this._bar.getComponent(Sprite).fillRange=0;
            this._isUse=true;
            return;
        }
    }
}


